using System;

namespace Sixeyed.CodeGeneration.Metadata.Interfaces
{
    /// <summary>
    /// Represents a single metadata item
    /// </summary>
    public interface IMetadataItem
    {
        /// <summary>
        /// Provider for the item
        /// </summary>
        IMetadataProvider Provider { get; set; }

        /// <summary>
        /// Unique identifier for the item
        /// </summary>
        string Key { get; set; }

        /// <summary>
        /// Underlying metadata object
        /// </summary>
        object Item { get; set; }

        /// <summary>
        /// Type of underlying metadata object
        /// </summary>
        Type ItemType { get;}
    }
}
